Non-volatile memory devices such as Solid State Drives (SSDs) are finding new applications in consumer electronics. For example, they are replacing Hard Disk Drives (HDDs), which typically comprise rapidly rotating disks (platters). Non-volatile memories, sometimes referred to as ‘flash memories’ (for example, NAND and NOR flash devices), are used in media storage, cameras, mobile phones, mobile computers, laptop computers, USB flash drives, etc. A non-volatile memory provides a relatively reliable, compact, cost-effective, and easily accessible means of storing data when its power supply is off.
Flash memory controllers are used to manage data stored in the non-volatile memory (e.g., flash memory), and to act as an interface between a host and the non-volatile memory. However, data transfer between a flash memory controller and a non-volatile flash memory consumes resources (bandwidth, power) and is time intensive. Conventionally, a flash memory transmits data of the requested page to a flash memory controller, which then determines whether the requested page contains valid data (i.e., the requested page is not an erased page) by counting the number of 1s or the number of 0xFF patterns. However, data transfer between a flash memory controller and a non-volatile flash memory consumes resources (bandwidth, power) and is time intensive.
Thus, there is a need to provide an improved way to reduce data traffic between a flash memory controller and a non-volatile flash memory.